package com.oj.api.core;

import com.oj.api.core.domain.JudgeInfo;
import com.oj.api.core.domain.ProblemInfo;
import com.oj.api.core.domain.ProblemSetCategoryInfo;
import com.oj.api.core.domain.ProblemSetInfo;
import com.oj.common.IFacadeLayer;
import com.oj.common.Response;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * Created by Bing on 2018/5/4.
 */
public interface ICoreFacade extends IFacadeLayer{


    Response testSave();

    Response findProblemSetCategory(ProblemSetCategoryInfo problemSetCategoryInfo);

    Response findProblemSet(ProblemSetInfo problemSetInfo);

    Response findProblemSetInfos(ProblemSetInfo problemSetInfo);

    Response findProblemSetList(ProblemSetInfo problemSetInfo);

    Response addProblemsToSet(ProblemSetInfo problemSetInfo);

    Response findProblem(String code);

    Response saveProblem(ProblemInfo problemInfo);

    Response findProblemInfos(ProblemInfo problemInfo);

    Response saveJudgeInfo(JudgeInfo judgeInfo);

    Response findJudgeInfoByCode(String code);

    /**
     * 查询指定条件的评测信息
     * @param judgeInfo
     * @return
     */
    Response findPageJudgeInfos(JudgeInfo judgeInfo);

    /**
     * 查询某一题目集下的排名
     * @return
     */
    Response findRankOfProblemSet( JudgeInfo judgeInfo);

    Response createCategory(ProblemSetCategoryInfo problemSetCategoryInfo);

    Response createSet(ProblemSetCategoryInfo problemSetCategoryInfo);

    Response updateSet(ProblemSetInfo problemSetInfo);

    Response getSet(String code);

}
